package ch.fusun.baron.farm;

import ch.fusun.baron.data.DataProvider;
import ch.fusun.baron.map.Tile;

/**
 * The farm service provides functionality to change farm data
 */
public interface FarmService extends DataProvider {

	/**
	 * @param tile
	 *            The tile
	 * @param farm
	 *            The farm
	 */
	void setFarm(Tile tile, Farm farm);

	/**
	 * @param model
	 *            the tile
	 * @return The farm if available
	 */
	Farm getFarm(Tile model);

	/**
	 * @param farm
	 *            The farm to search
	 * @return The tile of the farm
	 */
	Tile getLocation(Farm farm);

	/**
	 * @param tile
	 *            The tile on which to create it
	 */
	void createFarm(Tile tile);

}
